package com.atguigu.order.feign;

import com.atguigu.order.feign.fallback.ProductFeignClientFallback;
import com.atguigu.product.bean.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

//@RequestMapping("/api/product")
// 使用@FeignClient注解声明这是一个Feign客户端，用于调用名为"service-product"的服务
@FeignClient(value = "gateway",fallback = ProductFeignClientFallback.class)
public interface ProductFeignClient {
    // mvc注解的两套使用逻辑
    // 1.标注在Controller上，是接受这样的请求
    // 2.标注在FeignClient上，是发送这样的请求
    // 使用@GetMapping注解指定HTTP GET请求的处理方法，路径中的{id}表示一个路径变量
    // 该方法用于根据产品ID获取产品信息，@PathVariable注解用于将URL中的{id}值绑定到方法参数上
    @GetMapping("/api/product/product/{id}")
    Product getProductById(@PathVariable("id") Long id);


}

